# !user/bin/env python3
# -*- coding: utf-8 -*-

"""
tensorflow 第三章学习
图和张量

tesnor: 简单的理解就是多维数组, 它表明了TensorFlow的数据结构
flow: 表达了张量之间通过计算相互转化的过程

TensorFlow: 一个通过计算图来描述计算的编程系统

Tensor("add:0", shape=(2,), dtype=float32)
一个张量主要保存三个属性: name名字, shape维度, dtype类型
张量的名字通过"node: src_output"给出
add:0 表示张量result是计算节点"add"的第一个输出
shape=(2,) 表示张量result是一个一维数组, 长度为2
"""

import tensorflow as tf

A = tf.constant([1.0, 2.0], name="A")
B = tf.constant([1.0, 2.0], name="B")

RESULT = A + B
print(RESULT)

print(A.graph is tf.get_default_graph())

G1 = tf.Graph()
with G1.as_default():
    V = tf.get_variable("V", [1], initializer=tf.zeros_initializer())

G2 = tf.Graph()
with G2.as_default():
    V = tf.get_variable("V", [1], initializer=tf.ones_initializer())
    print(V)

with tf.Session(graph=G1) as sess:
    tf.global_variables_initializer().run()
    with tf.variable_scope("", reuse=True):
        print(sess.run(tf.get_variable("V")))

with tf.Session(graph=G2) as sess:
    tf.global_variables_initializer().run()
    with tf.variable_scope("", reuse=True):
        print(sess.run(tf.get_variable("V")))
